<?php
namespace app\common\controller;

use app\admin\library\Auth;
use think\Lang;
use think\Request;
use think\Session;
use think\Config;
use think\Url;

use think\captcha\Captcha;

class AdminBase extends CommonBase
{
	//管理员信息
	protected $adminRow = [];

	protected $setting	= [

	];

	protected $config 	= [
		'login_auth_on'	=>	0,	// 是否需要登录开关
	];
	//无需登录的方法 跳过验证
	protected $noNeedLogin = [];
	protected $noNeedRight = [];

	public function __construct()
	{
		parent::__construct();
	}

	protected function _initialize()
	{
		parent::_initialize();
		
		$modulename = $this->request->module();
		$controllername = strtolower($this->request->controller());
		$actionname = strtolower($this->request->action());

		$path = '/' . $modulename . '/' . str_replace('.', '/', $controllername) . '/' . $actionname;

		$this->auth = Auth::instance();

		//设置当前请求的URI
		$this->auth->setRequestUri($path);
		//检测 当前模块是否需要验证登录
		if(!$this->config['login_auth_on'])
		{
			return true;
		}
		//检测 当前模块是否需要验证登录

		if(!$this->auth->match($this->noNeedLogin))
		{
			//这里面是需要验证后的操作
			
			if(!$this->auth->isLogin())
			{
				//这里是没有登录后的操作
				
				//判断是否有回跳地址
				$url = Session::get('referer');
				$url = $url? $url : $this->request->url();//将会带参数
				$this->error('未登录,请先登录',Url::build('admin/Account/login'));
				//if(!$this->check_admin_login()) die('===no login===');//$this->redirect('admin/Login/login');
			}
			//已经存在登录信息 isLogin = 1 接下来检测是否有权限
			if( !$this->auth->match($this->noNeedRight) )
			{
				//这里是需要判断权限
				if( !$this->auth->check($path) )
				{
					$this->error('无权限',NULL);
				}
			}
		}

		//并不需要检测 或者 检测通过 接下来继续运行

		//非选项卡时 重定向地址 可以把地址栏显示地址?

		//设置面包屑导航的数据 并Assign

		//检测语言

		//配置一些信息
		//'site'           => array_intersect_key($site, array_flip(['name', 'cdnurl', 'version', 'timezone', 'languages']));
		
		//加载语言包
		



/*		


		dump($auth->login('tuduweb','kik1017','3600'));

		$this->adminRow = Session::get(Config::get('admin_session_key'));

		//登录命令
		dump($auth->login('tuduweb','kik1017','3600'));*/
		
	}

    protected function check_admin_login(){
    	$auth = Auth::instance();

    	return $auth->isLogin();
    }

	protected function getUri()
	{
		$breadcrumb = [];

		$uri = $this->request->controller() . '/' .$this->request->action();

		//\think\Log::debug($uri);

		//查询是否存在该uri节点,若不存在，则返回false
		
		$isHere = [];

		if(empty($isHere)) return false;

		//如果还有父节点,那么存入。(用于菜单栏)
		if($isHere['parent_id'] !== 0)
		{
			$breadcrumb[] = [];
		}

		$breadcrumb = $isHere;

		$this->assign('breadcrumb',$breadcrumb);

	}
}